<template>
  <div class="graph-container">
    <el-card>
      <div id="graph" :style="{width: width, height: height}"></div>
    </el-card>
  </div>
</template>

<script>
import * as echarts from 'echarts'

export default {
  name: 'Graph',
  props:{
    height:{
      type: String,
      default: '200px'
    },
    width:{
      type: String,
      default: '200px'
    }
  },
  mounted () {
    this.$nextTick(() =>{
      this.initCharts()
    })
  },
  methods: {
    initCharts(){
      const charts = echarts.init(document.getElementById('graph'))
      const axisData = ['Mon', 'Tue', 'Wed', 'Very Loooong Thu', 'Fri', 'Sat', 'Sun'];
      const data = axisData.map(function (item, i) {
        return Math.round(Math.random() * 1000 * (i + 1));
      });
      const links = data.map(function (item, i) {
        return {
          source: i,
          target: i + 1
        };
      });
      links.pop();
      const option = {
        title:{
          text: '关系图',
          textStyle:{
            fontWeight: 400,
          }
        },
        tooltip: {},
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: axisData
        },
        yAxis: {
          type: 'value'
        },
        series: [
          {
            type: 'graph',
            layout: 'none',
            coordinateSystem: 'cartesian2d',
            symbolSize: 40,
            label: {
              show: true
            },
            edgeSymbol: ['circle', 'arrow'],
            edgeSymbolSize: [4, 10],
            data: data,
            links: links,
            lineStyle: {
              color: '#2f4554'
            }
          }
        ]
      };
      charts.setOption(option);
    },
  }
}
</script>

<style scoped>

</style>
